home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs10.d81
/
dark88-4.sfx
/
m.1650.a1
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1990-02-12
|
4KB
|
195 lines
1000 REM * DARKTERM '88
1010 REM * 1650 MODEM FILE SOURCE
1020 REM *
1030 OPEN1,9,15,"S0:D'88.1650":CLOSE1
1040 OPEN2,9,1,"0:D'88.1650"
1050 SYS700
1060 .OPT O2
1070 ;
1080 CHKIN =$FFC6 ; KERNAL EQUATES
1090 CHKOUT =$FFC9
1100 CHRIN =$FFCF
1110 CHROUT =$FFD2
1120 CLRCHN =$FFCC
1130 GETIN =$FFE4
1140 ;
1150 PTR =140 ; TEMP POINTER
1160 ;
1170 DETECT =922 ; CARRIER DETECT FLAG
1180 DDELAY =927 ; DIALING DELAY
1190 WDELAY =926 ; CARRIER WAIT DELAY
1200 HDELAY =925 ; HANGUP DELAY
1210 ;
1220 MILLI =$880+24 ; USE TERMINAL'S
1230 ;
1240 *=$4500 ; STARTS HERE UP TO $47FF
1250 ;
1260 JMP ANSWER ; AUTO-ANSWER
1270 JMP DODIAL ; AUTO-DIAL
1280 JMP ONHOOK ; LABEL SAYS ALL
1290 JMP OFHOOK ; OFF HOOK
1300 JMP CARCHK ; LOST CARRIER CHECK
1310 JMP CUSTOM ; USER DEFINED ROUTINE
1320 JMP HANGUP ; HANGUP ROUTINE
1330 ;
1340 ONHOOK LDA #0 ; ON-HOOK
1350 STA $DD01
1360 LDA #$20
1370 STA $DD03 ; PIN J AS OUTPUT
1380 RTS
1390 ;
1400 OFHOOK LDA #$20 ; OFF-HOOK
1410 STA $DD01 ; PIN J HI
1420 RTS
1430 ;
1440 DODIAL STX PTR ; SAVE ADDRESS
1450 STY PTR+1 ; OF DIAL PTR STRING
1460 JSR ONHOOK ; HANG UP
1470 LDA HDELAY ; WAIT HDELAY SECONDS
1480 JSR WAIT
1490 JSR OFHOOK ; OFF-HOOK
1500 LDA #2 ; WAIT 2 SECONDS
1510 JSR WAIT
1520 LDY #0 ; INDEX TO START
1530 STY POINT
1540 AUTO1 LDY POINT ; GET INDEX
1550 LDA (PTR),Y ; AND CHARACTER
1560 CMP #"0" ; CHECK FOR NUMBER
1570 BCC NEXT ; NO
1580 CMP #":"
1590 BCS NEXT ; NO
1600 SEC ; LESS 48 TO GET # OF
1610 SBC #48 ; PULSES
1620 BNE AUTO2
1630 LDA #10 ; 0, SO MAKE 10 PULSES
1640 AUTO2 STA PULSE ; SAVE IT
1650 LDA #0 ; PULSE COUNT
1660 STA COUNT
1670 AUTO3 JSR (null)OF ; PULSE OFF LINE
1680 LDX DDELAY ; WAIT DELAY
1690 LDY DDELAY+1
1700 JSR MILLI ; WAIT IT OUT
1710 JSR OFHOOK ; PULSE ON LINE
1720 LDX DDELAY ; WAIT AGAIN
1730 LDY DDELAY+1
1740 JSR MILLI
1750 INC COUNT ; NEXT PULSE
1760 LDA COUNT
1770 CMP PULSE ; DONE YET
1780 BNE AUTO3 ; NO
1790 LDA #40 ; WAIT 2/3 SEC FOR NEXT #
1800 JSR JIFFY
1810 JSR ABORT ; CHECK FOR STOP KEY
1820 NEXT INC POINT ; NEXT #
1830 LDA POINT
1840 CMP #18 ; DONE ALL 18 CHARS
1850 BNE AUTO1 ; NO, (null) BACK
1860 LDA WDELAY ; WAIT OUT THE DELAY
1870 JSR WAIT
1880 LDA $DD01 ; HAVE A CARRIER
1890 AND #16
1900 BEQ AUTO4 ; YES, SIGNAL IT
1910 SEC ; NO, SET ZERO FLAG TRUE
1920 LDA #0 ; AND SET CARRY (NOT ABORT)
1930 RTS
1940 AUTO4 SEC ; HAVE CARRIER, SET
1950 LDA #1 ; ZERO FALSE
1960 RTS ; EXIT
1970 ;
1980 ABORT LDA $91 ; CHECK STOP KEY
1990 CMP #$7F
2000 BNE ABO1 ; NO, (null) BACK
2010 ABO0 PLA ; PULL RETURN ADDRESS
2020 PLA
2030 CLC ; CLEAR THE CARRY
2040 ABO1 RTS ; AND EXIT TO TERMINAL
2050 ;
2060 WAIT TAX ; 1 SECOND COUNTER
2070 W0 JSR CLRTIM
2080 W1 LDA $91 ; CHECK FOR ABORT
2090 CMP #$7F ; DURING THE WAIT
2100 BEQ ABO0
2110 LDA $A2
2120 CMP #60
2130 BCC W1
2140 DEX
2150 BMI W2
2160 BNE W0
2170 W2 RTS
2180 ;
2190 POINT .BYT 0
2200 COUNT .BYT 0
2210 PULSE .BYT 0
2220 KEYVAL .BYT 0
2230 ;
2240 ANSWER JSR ONHOOK ; ON-HOOK
2250 AN1 LDA $DD01 ; CHECK FOR RING
2260 AND #8 ; DETECT
2270 BEQ AN2 ; WE HAVE R.D., (null) ON
2280 JSR GETKEY ; CHECK FOR KEYPRESS
2290 BEQ AN1
2300 AN0 JSR OFHOOK ; OFF-HOOK
2310 LDA KEYVAL ; GET KEY PRESSED
2320 CLC ; AND ABORT
2330 RTS
2340 AN2 JSR CLRTIM
2350 JSR OFHOOK ; OFF-HOOK
2360 AN3 JSR GETKEY
2370 BNE AN0
2380 LDA $DD01 ; CHECK FOR DCD LINE
2390 AND #16
2400 BEQ AN4 ; (null)T CARRIER, SIGNAL
2410 LDA 160
2420 CMP #8 ; 30 SECOND CARRIER CHECK
2430 BCC AN3
2440 BCS ANSWER ; TIMES UP, RESET
2450 AN4 SEC ; SET CARRY FOR OK STATUS
2460 LDX #<300 ; SET BAUD RATE TO 300
2470 LDY #>300
2480 RTS
2490 ;
2500 (null)OF LDA #0 ; PULSE ON-HOOK
2510 STA $DD01
2520 RTS
2530 ;
2540 CLRTIM LDA #0
2550 STA $A0
2560 STA $A1
2570 STA $A2
2580 RTS
2590 ;
2600 JIFFY TAX
2610 JSR CLRTIM
2620 JIFF1 CPX $A2
2630 BCS JIFF1
2640 RTS
2650 ;
2660 GETKEY JSR GETIN
2670 PHA
2680 STA KEYVAL
2690 PLA
2700 RTS
2710 ;
2720 HANGUP JSR ONHOOK ; (null) ON-HOOK
2730 LDA #120 ; WAIT 2 SECONDS
2740 JSR JIFFY
2750 LDA $DD01
2760 AND #16
2770 BEQ HANGUP ; DO UNTIL HUNG UP
2780 JSR OFHOOK ; SET UP FOR NEXT CALL
2790 LDA #120 ; WAIT 2 SECONDS
2800 JMP JIFFY
2810 ;
2820 CARCHK BIT DETECT
2830 BPL CAR1 ; SKIP DETECTION
2840 LDA $DD01
2850 AND #16
2860 BEQ CAR1 ; STILL HAVE CARRIER
2870 CLC
2880 RTS ; CARRIER LOST
2890 CAR1 SEC
2900 RTS
2910 ;
2920 CUSTOM RTS ; NONE FOR 1650 MODEMS
2930 ;